package demo.employee;

import java.util.Comparator;

public class ArrayTools {
    /*
    静态方法public static void sort(Object[] arr)：实现给对象
    数组从小到大排序，要求元素的运行时类型必须实现Comparable接口
     */
    public static void sort(Object[] arr){
        for (int i = 1; i < arr.length; i++) {
            for (int j = 0; j < arr.length-i; j++) {
                Comparable c = (Comparable) arr[j];
                if(c.compareTo(arr[j+1])>0){
                    Object temp = arr[j];
                    arr[j]=arr[j+1];
                    arr[j+1]=temp;
                }
            }
        }
    }

    /*
    静态方法public static void sort(Object[] arr, Comparator c)：实现给对象数组从小到大排序，需要提供一个
    Comparator接口的实现类对象，给数组的元素对象排序。
     */
    public static void sort(Object[] arr, Comparator c){
        for (int i = 1; i < arr.length; i++) {
            for (int j = 0; j < arr.length-i; j++) {
                if(c.compare(arr[j],arr[j+1])>0){
                    Object temp = arr[j];
                    arr[j]=arr[j+1];
                    arr[j+1]=temp;
                }
            }
        }
    }

    //打印遍历
    public static void print(Object[] arr){
        for (Object o : arr) {
            System.out.println("o = " + o);
        }
    }
}
